package com.fdb.efp.nls.service.dao;

import com.fdb.efp.nls.service.domain.CoeffCfg;
import com.fdb.efp.nls.service.vo.CoeffCfgVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 提额系数配置表的DAO类
 * </p>
 * @author szbd
 * @createDate 2018-09-17 15:10:09
 */
public interface CoeffCfgDao {
    
    /**
     * 插入提额系数配置表记录
     * @param coeffCfg
     * @return
     */
    public int insertCoeffCfg(CoeffCfg coeffCfg);
    
    /**
     * 根据主键删除提额系数配置表记录
     * @param coeffCfg
     * @return
     */
    public int deleteCoeffCfgByPk(CoeffCfg coeffCfg);
    
    /**
     * 根据主键更新提额系数配置表记录
     * @param coeffCfg
     * @return
     */
    public int updateCoeffCfgByPk(CoeffCfg coeffCfg);
    
    /**
     * 根据主键查询提额系数配置表记录
     * @param coeffCfg
     * @return
     */
    public CoeffCfg queryCoeffCfgByPk(CoeffCfg coeffCfg);
    
    /**
     * 条件查询单笔提额系数配置表记录
     * @param coeffCfg
     * @return
     */
    public CoeffCfg querySingleCoeffCfgByCondition(CoeffCfg coeffCfg);
    
    /**
     * 查询提额系数配置表记录
     * @param coeffCfg
     * @return
     */
    public List<CoeffCfg> queryCoeffCfgByCondition(CoeffCfgVO coeffCfgVo);
    
    /**
     * 条件分页查询提额系数配置表记录
     * @param coeffCfg
     * @return
     */
    public List<CoeffCfg> queryCoeffCfgByConditionByPage(CoeffCfgVO coeffCfgVo);
    
    /**
     * 查询本人所属的记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfg> queryAllOwnerByPage(CoeffCfgVO coeffCfgVo);
    
    /**
     * 查询本机构的记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfg> queryAllCurrOrgByPage(CoeffCfgVO coeffCfgVo);
    
    /**
     * 查询本机构及下属机构的记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfg> queryAllCurrDownOrgByPage(CoeffCfgVO coeffCfgVo);
    
    /**
     * 按注册单位代码及机构代码查询省级记录
     * @param coeffCfg
     * @return
     */
    public CoeffCfg queryCoeffCfgByLeageOrgCode(CoeffCfg coeffCfg);
    
    /**
     * 按注册单位代码查询
     * @param coeffCfg
     * @return
     */
    public List<CoeffCfg> queryCoeffCfgByTypeId(CoeffCfg coeffCfg);
    
    /**
     * 不分页查询本人记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfg> queryAllOwner(CoeffCfgVO coeffCfgVo);
    
    /**
     * 不分页查询本机构的记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfg> queryAllCurrOrg(CoeffCfgVO coeffCfgVo);
    
    /**
     * 不分页查询本机构及下属机构的记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfg> queryAllCurrDownOrg(CoeffCfgVO coeffCfgVo);

    /**
     * 根据法人机构和类型代码数组
     * @param types
     * @param legalCode
     * @return
     */
    List<CoeffCfg> queryAllByTypesAndLegal(@Param("typeCodes") List<String> typeCodes, @Param("legalCode") String legalCode);
}